请打开!NAS的硬件转码真的很重要!实时转码哪种效率更高?硬解使用场景有哪些?各NAS如何开启硬件转码

您所在的位置:网站首页 jellyfin plex哪个好 请打开!NAS的硬件转码真的很重要!实时转码哪种效率更高?硬解使用场景有哪些?各NAS如何开启硬件转码

请打开!NAS的硬件转码真的很重要!实时转码哪种效率更高?硬解使用场景有哪些?各NAS如何开启硬件转码

2023-04-04 19:50| 来源: 网络整理| 查看: 265

作者:我是阿皮啊-

开篇碎碎念

大家好,相信不少朋友有玩NAS,有NAS自然会部署Jellyfin/plex/emby等影音服务器来管理你的影片资源。我是Jellyfin的重度使用者,下图就是我在NAS上部署的Jellyfin。

当你了解了Jellyfin/plex/emby后,肯定会知道硬件实时转码,当我们远程连接NAS中的Jellyfin影音服务器播放影片时,实时转码这个功能非常好用。

一些高端大佬可能会说,实时转码就是鸡肋,现在硬件那么强,哪个播放器不能流畅播放8K等电影呢?非也,非也,要先看看是用在什么场景上。

实时转码可以把高分辨率、高码率影片实时转成低码率影片进行实时远程串流播放,毕竟远程嘛,不像局域网内带宽那么大,所以这是实时转码的一个重要使用场景。

如下图,手机限速为3兆了,代表远程播放NAS中电影只有3Mbps速度,就可以把100兆码率的4K电影实时转成720P、码率为3兆的影片实时流畅播放,这样是不是很好理解?

就算转成720P 3兆码率,感觉清晰度也比爱、优、腾那些1080高清多了,哈哈。

关于硬件转码或硬件加速,以Jellyfin为例,官方页面也有说明的。开启硬件转码也就是调用集显来进行视频转码,可以降低处理器资源占用。

所以本篇来介绍一下常见NAS如何开启硬件转码、硬件转码的其它使用场景、以及各种硬件转码方式应该如何选择,话不多说,进入正文。

各品牌NAS如何开启硬解

以常见Docker安装Jellyfin、emby、plex为例,来说说如何开启硬件转码;我最常用的是Jellyfin,就以它来举例,其它emby、plex在安装时也是同理。

群晖NAS在Docker中部署Jellyfin时,勾选使用高权限执行容器即可,这样Jellyfin就有调用集显的权限了,也就能实时转码了。

群晖安装Jellfyin并开启集显转码,可以参考我这篇文章,完整的安装和设置教程。顺便说下,目前群晖新品DS923没有集显了,让上代DS920+销量更上一步,所以对集显转码有需求的朋友,不要考虑DS923即可。

 威联通的话,我使用的是TS-462C,N4505处理器,4盘位NAS,目前价格非常有性价比。 

威联通可以通过Compose命令形式安装并赋权集显,或者开启SSH,使用以下命令进行安装。

感兴趣的朋友可以看看我之前发的威联通安装Jellyfin的教程。

绿联的话,目前手上有一台DX4600,N5105处理器,配置拉满,非常适合新手上手,感兴趣朋友可以看看我之前的分享。 

在安装时勾选『硬件渲染』即可,这样容器就有调用集显的权限,也就能在Jellyfin中开启硬件转码了。

实时转码的应用场景

以剪辑软件来看,实时转码会用得上,把一些4K原始影片转成低占用的,方便剪辑过程中预览,像我平时使用Final cut pro来剪辑时就会生成代理媒体,猜测大概是这原理,不是专业影视行业从业者,如有不对请指正。

我主要说说实时转码在NAS上,或者说在影音服务器中的使用场景吧,也是我个人比较常用的场景。

一般玩NAS的朋友会经常听到实时转码,我们在NAS上部署Jellyfin/ebmy等影音服务器时就会用到这个功能。

应用场景1:让低端设备流畅播放高清影片

像我手上有一台安卓投影仪,因为处理器比较低端,只能播放最高分辨率为1080P且编码为H264的视频,遇上H265/HEVC编码的视频就没办法播放了,一卡一卡的。或者说普通H264 1080高码率的影片它也无法正常播放,720P对于它来说是最好的。

比如说下图这个编码的视频它就无法流畅播放了,HEVC编码,因为这个编码是近年来普及的,这台投影仪多年前就生产了,无法流畅播放也是正常的。

所以这个时候,实时转码就派上用场了,在安卓投影仪上装上Jellyfin,在播放时选择一个低分辨率,如720P,此时实时转码开始了,把1080P高码率的影片转成720P 4Mbps低码率的视频,实时传输到投影仪上播放,就能完美流畅播放了,对于一些低端播放器非常友好,此为应用场景之一。

希望这样举例大家可以理解。

应用场景2:高码率影片转成低码率进行远程串流播放

第2个应用场景是我最常用的,现在有这么一个用法,我在NAS中部署了Jellyfin影音服务器,我在外网情况下通过流量连接NAS进行观影,但是我的手机流量限速了,只有3.1Mbps速度。

但一部电影的码率如下,9492kbps即约9Mbps码率,相当于原画质播放的话,至少需要9Mbps的带宽才能流畅播放,我的NAS上行带宽有30兆,但我远程连接NAS的手机速率只有3.1兆,所以这部9兆码率的电影无法流畅进行播放,手机限速后它只能流畅实时播放3.1兆码率的影片。

那算怎么办呢?此时,实时转码的威力就体现了,那么我就在播放时选择一个480P-3Mbps的分辨率就行了,实时转码就会把1080 9兆码率的影片实时转成480P 3兆的影片,实时往手机串流播放,这样,3.1兆速度的带宽也能流畅进行观影了。

就算你是4K 100兆码率的影片,也能实时转成3兆码率进行远程串流播放,这就是实时转码的常用场景了。

如下图,原始影片为1080,码率为12Mbps,如果用我8Mbps的带宽速度来看,是没办法流畅观看的,但是我选择转码为低于8Mbps就可以流畅观看了,实时转为8兆码率影片,这样远程就可以流程通过8兆带宽播放。

希望以上两个使用场景可以让各位理解实时转码在NAS影音服务器上的作用。

哪种转码方式效率更高?

安装完Jellyfin后,在控制台-播放,转码选项处开启时会发现,有多种转码方式可选,比如常见的有AMD AMF、Nvidia NVENC、Intel QuickSync、VAAPI、Apple VideoToolBox、Video4Linux。

那么这几种转码方式应该如何选择呢?或者说,如果根据自己的处理器选择合适的转码方案呢?

我简单查了一下这几个转码方案的细节。非相关从业人士,多为百科查询而来,如有说错请指正。

AMD AMF:AMD处理器专有,AMF全称Advanced Media Framework,简译为高级媒体框架。此SDK可用于开发无线显示,远程桌面,视频编辑,转码和回放应用程序。使用AMD处理器或显卡的可选此项。

Nvidia NVENC:NVENC是英伟达的专有技术,NVENC 是 GeForce GPU 的一个独立部分,用于对视频进行编码,从而减轻了CPU 的负担。使用英伟达显卡的可选此选项。

Intel Quick Sync:Intel Quick Sync Video是由英特尔提供的快速视频转换技术,利用支持QSV的硬件可显著加速视频编解码能力,可被应用于播放器和视频编辑软件。使用英特尔处理器的可选此项。

VAAPI:是一套 Intel 提供的视频硬件编解码的开源库和标准。例如可使用这套API使用英特尔GPU的硬件加速能力,也就是通过此API可调用英特尔集显。

Apple VideoToolBox:有Apple字眼,顾名思义是苹果的相关标准,IOS8后开放了这套API,一个底层视频硬编解码框架,纯C语言API,可直接访问硬件的编解码器;一般影音服务器装在服务端,没在果子机器上装过,所以这个我没机会尝试。

Video4Linux:Video4Linux(简V4L)是Linux中关于视频设备的内核驱动,它为针对视频设备的应用程序编 程提供一系列接口函数,这些视频设备包括现今市场上流行的TV卡、视频捕捉卡和USB摄像头等。

我手上只有英特尔处理器,没有AMD的处理器测试,以英特尔来说,选择Intel Quick Sync转码效率比VAAPI更高,像群晖上,比较常用的转码方式就是Intel Quick Sync和VAAPI。

但一些比较老的处理器如J1900,选择Intel Quick Sync会提示报错,只有选择VAAPI才可正常转码,加上这些老赛扬处理器集显性能本就很差,所以开和不开集显转码也是没差别,J1900转个1080的视频就非常卡顿了。

但是一些较新的处理器,如3865U、N4505、N5105等,你直接选择Intel Quick Sync转码就行了,集显性能强不少,也能正常转码。

以这我台3865U机器为例,装了群晖,装了Jellyfin,在筢Intel Quick Sync时效率就比VAAPI更快,直观感受就是转码时加载速度快,而VAAPI则相比慢半拍。

另一个比较明显的是,选择VAAPI时,处理器占用会比Intel Quick Sync高非常多,感觉就是VAAPI迟滞导致要占用部分CPU资源。

Intel Quick Sync时,转码时,甚至处理器占用没有变化。前提是集显足够强,像N4505,在转4K影片时,处理器占用不过半,如N5105,处理器占用甚至不变化,因为它们的GPU集显够强。

如英特尔QSV,如果你使用的是英特尔处理器,以J1900为例,可以在英特尔官网查询处理器参数,在"英特尔Quick Sync Video"参数处查看是否为『是』,是代表支持,即可选择Intel QSV转码方式。

在硬件加速界面,如选择英特尔QSV,还会有硬件解码选项,这些是否打勾可以根据自己的处理器是否支持这些编码来决定。

如何查这些编码吗,可以在CPUMONKEY网站中查询是否支持,比如可以输入J1900和N4505的对比,往下拉,就可以看到你的处理器是否支持。

可以看到,新款N4505处理器支持的编解码更多,比如J1900不支持H265,4505就支持了。可以对应这里的编解码支持勾选即可,这算是一个比较方便查看处理器编解码的地方了,当然也可以去处理器官网查询。

说了这么多,如果你是较新款的英特尔处理器,无脑选择Intel QSV转码方式就行了。

如有使用其它平台处理器的小伙伴不妨评论区分享下哪种更好。

如何确定是否调用集显进行转码

首先,以Jellyfin为例,打开一部影片插入,选择画质为最低,触发转码。

或者点击齿轮-播放信息,也能看到播放方式为转码,说明触发实时转码。

或者在控制台中找到活动的设备选项,点击感叹号,也能看到当前播放的视频是否处于转码状态。

以上Jellyfin触发转码的查看方式,emby或plex应该也是类似的。

那么如何确定是否调用了集显转码呢?回到Jellyfin控制台,找到日志,随意点开前两个日志。

打开日志后,Ctrl+F键进入搜索,搜索hw关键字即可,如下图,显示有hw_devie qsv-qs@va等关键字,说明集显被成功调用来转码了。

因为我在Jellyfin后台的转码方式选择为Intel QSV,所以如此,如果选择为VAAPI,关键字看看有没有VAAPI就行了,有就代表成功调用集显。

以上方式不严谨,也可以打开SSH,登录后,输入htop命令查看,然后打开播放一部影片转码,找到其中涉及Jellyfin的进程,查看是否有hw_device qsv等关键字,有的话说明是调用集显在转码了。

像我这台3865U,在进行4K实时转码时,除了集显运作外,处理器也能明显看到快占满了,大概率是集显性能不太有余力应对4K转码,所以处理器还是分配了一些压力?但在转1080资源时,处理器占用非常低,所以也只能如此猜测了。

因为另一台N4505处理器的机器在4K转码时,处理器占用才不到30%,因为N4505的集显很强,轻松应对4K转码,所以大概率是如此。

最后的最后

最后,本人非这些相关硬件专业人士,许多概念性东西也是从网上搜寻而来,如有错误,请指正。

主要也是说说硬件转码在NAS上的常用场景,以及自己实测得到的哪种转码方式效率更高,简单分享一下,希望帮到有需要的朋友。

如果有其它更好建议,欢迎评论区留言,喜欢的朋友不妨关注一波,后续分享更多,我们下篇再见。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3